home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / flexcat / lib / amigaoberon.sd next >
Text File  |  1999-06-14  |  2KB  |  86 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. (****************************************************************
  4.    This file was created automatically by `%fv'
  5.    Do NOT edit by hand!
  6.    AmigaOberon source description © 1994 by Albert Weinert
  7.    Using with AmigaOberon Interfaces for AmigaOS Release 3.1
  8.  
  9.    Application: %b
  10.    Language   : %l
  11.    Version    : %v
  12.    Description: %f0
  13.  
  14. ****************************************************************)
  15.  
  16. MODULE %o3;
  17.  
  18. IMPORT
  19.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  20.  
  21. CONST
  22.   builtinlanguage = %l;
  23.   version = %v;
  24.  
  25.   %i* = %d;\n  %iSTR = %s;\n
  26.  
  27. TYPE
  28.   AppString = STRUCT
  29.      id  : LONGINT;
  30.      str : e.LSTRPTR;
  31.   END;
  32.   AppStringArray = ARRAY %n OF AppString;
  33.  
  34. CONST
  35.   AppStrings = AppStringArray (
  36.     %i, y.ADR(%iSTR)%(,)
  37.   );
  38.  
  39. VAR
  40.   catalog : lo.CatalogPtr;
  41.  
  42.   PROCEDURE CloseCatalog*();
  43.     BEGIN
  44.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  45.    END CloseCatalog;
  46.  
  47.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  48.     VAR Tag : u.Tags4;
  49.     BEGIN
  50.       CloseCatalog();
  51.       IF (catalog = NIL) & (lo.base # NIL) THEN
  52.     Tag:= u.Tags4(lo.builtInLanguage, y.ADR(builtinlanguage),
  53.               u.skip, u.done,
  54.               lo.version, version,
  55.               u.done, u.done);
  56.     IF language # "" THEN
  57.       Tag[1].tag:= lo.language; Tag[1].data := y.ADR( language );
  58.     END;
  59.     catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
  60.       END;
  61.     END OpenCatalog;
  62.  
  63.   PROCEDURE GetString* (num: LONGINT): e.LSTRPTR;
  64.     VAR
  65.       i: LONGINT;
  66.       default: e.LSTRPTR;
  67.     BEGIN
  68.       i := 0; WHILE (i < %n) AND (AppStrings[i].id # num) DO INC (i) END;
  69.  
  70.       IF i # %n THEN
  71.       default := AppStrings[i].str;
  72.       ELSE
  73.     default := NIL;
  74.       END;
  75.  
  76.       IF catalog # NIL THEN
  77.     RETURN lo.GetCatalogStr (catalog, num, default^);
  78.       ELSE
  79.     RETURN default;
  80.       END;
  81.     END GetString;
  82.  
  83. CLOSE
  84.   CloseCatalog();
  85. END %o3.
  86.